Cosa è la OOP ?
La programmazione orientata agli oggetti (OOP) è un paradigma di programmazione che si basa sulla concettualizzazione e l'organizzazione dei dati e delle funzioni in unità logiche chiamate oggetti.
Overloading
è una caratteristica del polimorfismo, possiamo definire diversi metodi con lo stesso nome(diverse firme), ma differenti parametri
Overloading sugli operatori
abbiamo visto che una funzione si può specializzare rispetto a specifivi argomenti: firma della classe. Quindi si può ridefinire una funzione , ma non solo si possono ridefinire anche gli operatori, per tipo di dati diversi, ad esempio su stringhe o addirittura oggetti. Per definirre un operatore si usa la parola chiave operator seguita dal'operatore da ridefinire
Il Costruttore
Un'oggetto è caratterizzato da una serie di proprietà intrinseche dell'oggetto stesso, deve possedere dei valori iniziali, per questo motivo una classe deve includere un Costruttore, un metodo avente stesso nome della classe che viene chiamato alla creazione della classe nome();
Il Distruttore
è il metodo che viene chiamato quando la classe cessa la sua esistenza, ha lo stesso nome della clase ma include il carattere tilde ~nome();
Per comprendere il C++ bisogna comprendere il concetto di classi di oggetti, una classe può essere vista come un modello che definisce un oggetto, prendiamo ad esempio un'auto, possiede un conta kilometri, marcia , freno, volate.... questi definisco la classe, possiamo avere diverse marche di auto ma tutte svolgono le medesime cose.
Istanza:
- si riferisce al'occultamento delle informazioni dentro una classe,per consentire l'accesso solo a metodi e proprietà specifici. Ciò protegge i dati interni dell'oggetto da modifiche accidentali o indesiderate.
- permette di creare una nuova classe (sotto classe) basata su una classe esistente (superclasse), ereditando tutte le proprietà e i metodi della superclasse. Questo permette di creare gerarchie di classi e di evitare la duplicazione del codice.
- è la capacità di un oggetto di assumere diversi comportamenti a seconda del contesto in cui viene utilizzato. Ciò consente di scrivere codice generico che può essere utilizzato con oggetti di diverse classi.
- è un modello di un oggetto che definisce le proprietà e i metodi che l'oggetto può avere. Una classe è come uno stampo per creare oggetti.
- è un'istanza di una classe, con proprietà e metodi specifici che la classe definisce.
- è una funzione membro della classe che opera sui dati dell'oggetto per eseguire un'azione specifica.
- Gli attributi sono variabili definite all'interno della classe di un oggetto , accessibili solo per i metodi dell'oggetto stesso